﻿using System.Collections.Generic;
using XLua;
#if USE_UNI_LUA
using LuaAPI = UniLua.Lua;
using RealStatePtr = UniLua.ILuaState;
using LuaCSFunction = UniLua.CSharpFunctionDelegate;
#else
using LuaAPI = XLua.LuaDLL.Lua;
using RealStatePtr = System.IntPtr;
using LuaCSFunction = XLua.LuaDLL.lua_CSFunction;
#endif

namespace XLua.CSObjectWrap
{
    using Utils = XLua.Utils;

    public class UnityEngineDebugWrap
    {
        public static void __Register(RealStatePtr L)
        {
            ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
            System.Type type = typeof(UnityEngine.Debug);
            Utils.BeginObjectRegister(type, L, translator, 0, 0, 0, 0);

            Utils.EndObjectRegister(type, L, translator, null, null, null, null, null);

            Utils.BeginClassRegister(type, L, __CreateInstance, 17, 3, 1);
            Utils.RegisterFunc(L, Utils.CLS_IDX, "DrawLine", _m_DrawLine_xlua_st_);
            Utils.RegisterFunc(L, Utils.CLS_IDX, "DrawRay", _m_DrawRay_xlua_st_);
            Utils.RegisterFunc(L, Utils.CLS_IDX, "Break", _m_Break_xlua_st_);
            Utils.RegisterFunc(L, Utils.CLS_IDX, "DebugBreak", _m_DebugBreak_xlua_st_);
            Utils.RegisterFunc(L, Utils.CLS_IDX, "Log", _m_Log_xlua_st_);
            Utils.RegisterFunc(L, Utils.CLS_IDX, "LogFormat", _m_LogFormat_xlua_st_);
            Utils.RegisterFunc(L, Utils.CLS_IDX, "LogError", _m_LogError_xlua_st_);
            Utils.RegisterFunc(L, Utils.CLS_IDX, "LogErrorFormat", _m_LogErrorFormat_xlua_st_);
            Utils.RegisterFunc(
                L,
                Utils.CLS_IDX,
                "ClearDeveloperConsole",
                _m_ClearDeveloperConsole_xlua_st_
            );
            Utils.RegisterFunc(L, Utils.CLS_IDX, "LogException", _m_LogException_xlua_st_);
            Utils.RegisterFunc(L, Utils.CLS_IDX, "LogWarning", _m_LogWarning_xlua_st_);
            Utils.RegisterFunc(L, Utils.CLS_IDX, "LogWarningFormat", _m_LogWarningFormat_xlua_st_);
            Utils.RegisterFunc(L, Utils.CLS_IDX, "Assert", _m_Assert_xlua_st_);
            Utils.RegisterFunc(L, Utils.CLS_IDX, "AssertFormat", _m_AssertFormat_xlua_st_);
            Utils.RegisterFunc(L, Utils.CLS_IDX, "LogAssertion", _m_LogAssertion_xlua_st_);
            Utils.RegisterFunc(
                L,
                Utils.CLS_IDX,
                "LogAssertionFormat",
                _m_LogAssertionFormat_xlua_st_
            );

            Utils.RegisterFunc(L, Utils.CLS_GETTER_IDX, "unityLogger", _g_get_unityLogger);
            Utils.RegisterFunc(
                L,
                Utils.CLS_GETTER_IDX,
                "developerConsoleVisible",
                _g_get_developerConsoleVisible
            );
            Utils.RegisterFunc(L, Utils.CLS_GETTER_IDX, "isDebugBuild", _g_get_isDebugBuild);

            Utils.RegisterFunc(
                L,
                Utils.CLS_SETTER_IDX,
                "developerConsoleVisible",
                _s_set_developerConsoleVisible
            );

            Utils.EndClassRegister(type, L, translator);
        }

        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int __CreateInstance(RealStatePtr L)
        {
            try
            {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
                if (LuaAPI.lua_gettop(L) == 1)
                {
                    var gen_ret = new UnityEngine.Debug();
                    translator.Push(L, gen_ret);

                    return 1;
                }
            }
            catch (System.Exception gen_e)
            {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }
            return LuaAPI.luaL_error(L, "invalid arguments to UnityEngine.Debug constructor!");
        }

        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _m_DrawLine_xlua_st_(RealStatePtr L)
        {
            try
            {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);

                int gen_param_count = LuaAPI.lua_gettop(L);

                if (
                    gen_param_count == 2
                    && translator.Assignable<UnityEngine.Vector3>(L, 1)
                    && translator.Assignable<UnityEngine.Vector3>(L, 2)
                )
                {
                    UnityEngine.Vector3 _start;
                    translator.Get(L, 1, out _start);
                    UnityEngine.Vector3 _end;
                    translator.Get(L, 2, out _end);

                    UnityEngine.Debug.DrawLine(_start, _end);

                    return 0;
                }
                if (
                    gen_param_count == 3
                    && translator.Assignable<UnityEngine.Vector3>(L, 1)
                    && translator.Assignable<UnityEngine.Vector3>(L, 2)
                    && translator.Assignable<UnityEngine.Color>(L, 3)
                )
                {
                    UnityEngine.Vector3 _start;
                    translator.Get(L, 1, out _start);
                    UnityEngine.Vector3 _end;
                    translator.Get(L, 2, out _end);
                    UnityEngine.Color _color;
                    translator.Get(L, 3, out _color);

                    UnityEngine.Debug.DrawLine(_start, _end, _color);

                    return 0;
                }
                if (
                    gen_param_count == 4
                    && translator.Assignable<UnityEngine.Vector3>(L, 1)
                    && translator.Assignable<UnityEngine.Vector3>(L, 2)
                    && translator.Assignable<UnityEngine.Color>(L, 3)
                    && LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 4)
                )
                {
                    UnityEngine.Vector3 _start;
                    translator.Get(L, 1, out _start);
                    UnityEngine.Vector3 _end;
                    translator.Get(L, 2, out _end);
                    UnityEngine.Color _color;
                    translator.Get(L, 3, out _color);
                    float _duration = (float)LuaAPI.lua_tonumber(L, 4);

                    UnityEngine.Debug.DrawLine(_start, _end, _color, _duration);

                    return 0;
                }
                if (
                    gen_param_count == 5
                    && translator.Assignable<UnityEngine.Vector3>(L, 1)
                    && translator.Assignable<UnityEngine.Vector3>(L, 2)
                    && translator.Assignable<UnityEngine.Color>(L, 3)
                    && LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 4)
                    && LuaTypes.LUA_TBOOLEAN == LuaAPI.lua_type(L, 5)
                )
                {
                    UnityEngine.Vector3 _start;
                    translator.Get(L, 1, out _start);
                    UnityEngine.Vector3 _end;
                    translator.Get(L, 2, out _end);
                    UnityEngine.Color _color;
                    translator.Get(L, 3, out _color);
                    float _duration = (float)LuaAPI.lua_tonumber(L, 4);
                    bool _depthTest = LuaAPI.lua_toboolean(L, 5);

                    UnityEngine.Debug.DrawLine(_start, _end, _color, _duration, _depthTest);

                    return 0;
                }
            }
            catch (System.Exception gen_e)
            {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }

            return LuaAPI.luaL_error(L, "invalid arguments to UnityEngine.Debug.DrawLine!");
        }

        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _m_DrawRay_xlua_st_(RealStatePtr L)
        {
            try
            {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);

                int gen_param_count = LuaAPI.lua_gettop(L);

                if (
                    gen_param_count == 2
                    && translator.Assignable<UnityEngine.Vector3>(L, 1)
                    && translator.Assignable<UnityEngine.Vector3>(L, 2)
                )
                {
                    UnityEngine.Vector3 _start;
                    translator.Get(L, 1, out _start);
                    UnityEngine.Vector3 _dir;
                    translator.Get(L, 2, out _dir);

                    UnityEngine.Debug.DrawRay(_start, _dir);

                    return 0;
                }
                if (
                    gen_param_count == 3
                    && translator.Assignable<UnityEngine.Vector3>(L, 1)
                    && translator.Assignable<UnityEngine.Vector3>(L, 2)
                    && translator.Assignable<UnityEngine.Color>(L, 3)
                )
                {
                    UnityEngine.Vector3 _start;
                    translator.Get(L, 1, out _start);
                    UnityEngine.Vector3 _dir;
                    translator.Get(L, 2, out _dir);
                    UnityEngine.Color _color;
                    translator.Get(L, 3, out _color);

                    UnityEngine.Debug.DrawRay(_start, _dir, _color);

                    return 0;
                }
                if (
                    gen_param_count == 4
                    && translator.Assignable<UnityEngine.Vector3>(L, 1)
                    && translator.Assignable<UnityEngine.Vector3>(L, 2)
                    && translator.Assignable<UnityEngine.Color>(L, 3)
                    && LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 4)
                )
                {
                    UnityEngine.Vector3 _start;
                    translator.Get(L, 1, out _start);
                    UnityEngine.Vector3 _dir;
                    translator.Get(L, 2, out _dir);
                    UnityEngine.Color _color;
                    translator.Get(L, 3, out _color);
                    float _duration = (float)LuaAPI.lua_tonumber(L, 4);

                    UnityEngine.Debug.DrawRay(_start, _dir, _color, _duration);

                    return 0;
                }
                if (
                    gen_param_count == 5
                    && translator.Assignable<UnityEngine.Vector3>(L, 1)
                    && translator.Assignable<UnityEngine.Vector3>(L, 2)
                    && translator.Assignable<UnityEngine.Color>(L, 3)
                    && LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 4)
                    && LuaTypes.LUA_TBOOLEAN == LuaAPI.lua_type(L, 5)
                )
                {
                    UnityEngine.Vector3 _start;
                    translator.Get(L, 1, out _start);
                    UnityEngine.Vector3 _dir;
                    translator.Get(L, 2, out _dir);
                    UnityEngine.Color _color;
                    translator.Get(L, 3, out _color);
                    float _duration = (float)LuaAPI.lua_tonumber(L, 4);
                    bool _depthTest = LuaAPI.lua_toboolean(L, 5);

                    UnityEngine.Debug.DrawRay(_start, _dir, _color, _duration, _depthTest);

                    return 0;
                }
            }
            catch (System.Exception gen_e)
            {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }

            return LuaAPI.luaL_error(L, "invalid arguments to UnityEngine.Debug.DrawRay!");
        }

        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _m_Break_xlua_st_(RealStatePtr L)
        {
            try
            {
                {
                    UnityEngine.Debug.Break();

                    return 0;
                }
            }
            catch (System.Exception gen_e)
            {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }
        }

        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _m_DebugBreak_xlua_st_(RealStatePtr L)
        {
            try
            {
                {
                    UnityEngine.Debug.DebugBreak();

                    return 0;
                }
            }
            catch (System.Exception gen_e)
            {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }
        }

        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _m_Log_xlua_st_(RealStatePtr L)
        {
            try
            {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);

                int gen_param_count = LuaAPI.lua_gettop(L);

                if (gen_param_count == 1 && translator.Assignable<object>(L, 1))
                {
                    object _message = translator.GetObject(L, 1, typeof(object));

                    UnityEngine.Debug.Log(_message);

                    return 0;
                }
                if (
                    gen_param_count == 2
                    && translator.Assignable<object>(L, 1)
                    && translator.Assignable<UnityEngine.Object>(L, 2)
                )
                {
                    object _message = translator.GetObject(L, 1, typeof(object));
                    UnityEngine.Object _context = (UnityEngine.Object)
                        translator.GetObject(L, 2, typeof(UnityEngine.Object));

                    UnityEngine.Debug.Log(_message, _context);

                    return 0;
                }
            }
            catch (System.Exception gen_e)
            {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }

            return LuaAPI.luaL_error(L, "invalid arguments to UnityEngine.Debug.Log!");
        }

        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _m_LogFormat_xlua_st_(RealStatePtr L)
        {
            try
            {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);

                int gen_param_count = LuaAPI.lua_gettop(L);

                if (
                    gen_param_count >= 1
                    && (LuaAPI.lua_isnil(L, 1) || LuaAPI.lua_type(L, 1) == LuaTypes.LUA_TSTRING)
                    && (
                        LuaTypes.LUA_TNONE == LuaAPI.lua_type(L, 2)
                        || translator.Assignable<object>(L, 2)
                    )
                )
                {
                    string _format = LuaAPI.lua_tostring(L, 1);
                    object[] _args = translator.GetParams<object>(L, 2);

                    UnityEngine.Debug.LogFormat(_format, _args);

                    return 0;
                }
                if (
                    gen_param_count >= 2
                    && translator.Assignable<UnityEngine.Object>(L, 1)
                    && (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING)
                    && (
                        LuaTypes.LUA_TNONE == LuaAPI.lua_type(L, 3)
                        || translator.Assignable<object>(L, 3)
                    )
                )
                {
                    UnityEngine.Object _context = (UnityEngine.Object)
                        translator.GetObject(L, 1, typeof(UnityEngine.Object));
                    string _format = LuaAPI.lua_tostring(L, 2);
                    object[] _args = translator.GetParams<object>(L, 3);

                    UnityEngine.Debug.LogFormat(_context, _format, _args);

                    return 0;
                }
                if (
                    gen_param_count >= 4
                    && translator.Assignable<UnityEngine.LogType>(L, 1)
                    && translator.Assignable<UnityEngine.LogOption>(L, 2)
                    && translator.Assignable<UnityEngine.Object>(L, 3)
                    && (LuaAPI.lua_isnil(L, 4) || LuaAPI.lua_type(L, 4) == LuaTypes.LUA_TSTRING)
                    && (
                        LuaTypes.LUA_TNONE == LuaAPI.lua_type(L, 5)
                        || translator.Assignable<object>(L, 5)
                    )
                )
                {
                    UnityEngine.LogType _logType;
                    translator.Get(L, 1, out _logType);
                    UnityEngine.LogOption _logOptions;
                    translator.Get(L, 2, out _logOptions);
                    UnityEngine.Object _context = (UnityEngine.Object)
                        translator.GetObject(L, 3, typeof(UnityEngine.Object));
                    string _format = LuaAPI.lua_tostring(L, 4);
                    object[] _args = translator.GetParams<object>(L, 5);

                    UnityEngine.Debug.LogFormat(_logType, _logOptions, _context, _format, _args);

                    return 0;
                }
            }
            catch (System.Exception gen_e)
            {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }

            return LuaAPI.luaL_error(L, "invalid arguments to UnityEngine.Debug.LogFormat!");
        }

        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _m_LogError_xlua_st_(RealStatePtr L)
        {
            try
            {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);

                int gen_param_count = LuaAPI.lua_gettop(L);

                if (gen_param_count == 1 && translator.Assignable<object>(L, 1))
                {
                    object _message = translator.GetObject(L, 1, typeof(object));

                    UnityEngine.Debug.LogError(_message);

                    return 0;
                }
                if (
                    gen_param_count == 2
                    && translator.Assignable<object>(L, 1)
                    && translator.Assignable<UnityEngine.Object>(L, 2)
                )
                {
                    object _message = translator.GetObject(L, 1, typeof(object));
                    UnityEngine.Object _context = (UnityEngine.Object)
                        translator.GetObject(L, 2, typeof(UnityEngine.Object));

                    UnityEngine.Debug.LogError(_message, _context);

                    return 0;
                }
            }
            catch (System.Exception gen_e)
            {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }

            return LuaAPI.luaL_error(L, "invalid arguments to UnityEngine.Debug.LogError!");
        }

        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _m_LogErrorFormat_xlua_st_(RealStatePtr L)
        {
            try
            {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);

                int gen_param_count = LuaAPI.lua_gettop(L);

                if (
                    gen_param_count >= 1
                    && (LuaAPI.lua_isnil(L, 1) || LuaAPI.lua_type(L, 1) == LuaTypes.LUA_TSTRING)
                    && (
                        LuaTypes.LUA_TNONE == LuaAPI.lua_type(L, 2)
                        || translator.Assignable<object>(L, 2)
                    )
                )
                {
                    string _format = LuaAPI.lua_tostring(L, 1);
                    object[] _args = translator.GetParams<object>(L, 2);

                    UnityEngine.Debug.LogErrorFormat(_format, _args);

                    return 0;
                }
                if (
                    gen_param_count >= 2
                    && translator.Assignable<UnityEngine.Object>(L, 1)
                    && (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING)
                    && (
                        LuaTypes.LUA_TNONE == LuaAPI.lua_type(L, 3)
                        || translator.Assignable<object>(L, 3)
                    )
                )
                {
                    UnityEngine.Object _context = (UnityEngine.Object)
                        translator.GetObject(L, 1, typeof(UnityEngine.Object));
                    string _format = LuaAPI.lua_tostring(L, 2);
                    object[] _args = translator.GetParams<object>(L, 3);

                    UnityEngine.Debug.LogErrorFormat(_context, _format, _args);

                    return 0;
                }
            }
            catch (System.Exception gen_e)
            {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }

            return LuaAPI.luaL_error(L, "invalid arguments to UnityEngine.Debug.LogErrorFormat!");
        }

        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _m_ClearDeveloperConsole_xlua_st_(RealStatePtr L)
        {
            try
            {
                {
                    UnityEngine.Debug.ClearDeveloperConsole();

                    return 0;
                }
            }
            catch (System.Exception gen_e)
            {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }
        }

        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _m_LogException_xlua_st_(RealStatePtr L)
        {
            try
            {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);

                int gen_param_count = LuaAPI.lua_gettop(L);

                if (gen_param_count == 1 && translator.Assignable<System.Exception>(L, 1))
                {
                    System.Exception _exception = (System.Exception)
                        translator.GetObject(L, 1, typeof(System.Exception));

                    UnityEngine.Debug.LogException(_exception);

                    return 0;
                }
                if (
                    gen_param_count == 2
                    && translator.Assignable<System.Exception>(L, 1)
                    && translator.Assignable<UnityEngine.Object>(L, 2)
                )
                {
                    System.Exception _exception = (System.Exception)
                        translator.GetObject(L, 1, typeof(System.Exception));
                    UnityEngine.Object _context = (UnityEngine.Object)
                        translator.GetObject(L, 2, typeof(UnityEngine.Object));

                    UnityEngine.Debug.LogException(_exception, _context);

                    return 0;
                }
            }
            catch (System.Exception gen_e)
            {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }

            return LuaAPI.luaL_error(L, "invalid arguments to UnityEngine.Debug.LogException!");
        }

        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _m_LogWarning_xlua_st_(RealStatePtr L)
        {
            try
            {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);

                int gen_param_count = LuaAPI.lua_gettop(L);

                if (gen_param_count == 1 && translator.Assignable<object>(L, 1))
                {
                    object _message = translator.GetObject(L, 1, typeof(object));

                    UnityEngine.Debug.LogWarning(_message);

                    return 0;
                }
                if (
                    gen_param_count == 2
                    && translator.Assignable<object>(L, 1)
                    && translator.Assignable<UnityEngine.Object>(L, 2)
                )
                {
                    object _message = translator.GetObject(L, 1, typeof(object));
                    UnityEngine.Object _context = (UnityEngine.Object)
                        translator.GetObject(L, 2, typeof(UnityEngine.Object));

                    UnityEngine.Debug.LogWarning(_message, _context);

                    return 0;
                }
            }
            catch (System.Exception gen_e)
            {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }

            return LuaAPI.luaL_error(L, "invalid arguments to UnityEngine.Debug.LogWarning!");
        }

        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _m_LogWarningFormat_xlua_st_(RealStatePtr L)
        {
            try
            {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);

                int gen_param_count = LuaAPI.lua_gettop(L);

                if (
                    gen_param_count >= 1
                    && (LuaAPI.lua_isnil(L, 1) || LuaAPI.lua_type(L, 1) == LuaTypes.LUA_TSTRING)
                    && (
                        LuaTypes.LUA_TNONE == LuaAPI.lua_type(L, 2)
                        || translator.Assignable<object>(L, 2)
                    )
                )
                {
                    string _format = LuaAPI.lua_tostring(L, 1);
                    object[] _args = translator.GetParams<object>(L, 2);

                    UnityEngine.Debug.LogWarningFormat(_format, _args);

                    return 0;
                }
                if (
                    gen_param_count >= 2
                    && translator.Assignable<UnityEngine.Object>(L, 1)
                    && (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING)
                    && (
                        LuaTypes.LUA_TNONE == LuaAPI.lua_type(L, 3)
                        || translator.Assignable<object>(L, 3)
                    )
                )
                {
                    UnityEngine.Object _context = (UnityEngine.Object)
                        translator.GetObject(L, 1, typeof(UnityEngine.Object));
                    string _format = LuaAPI.lua_tostring(L, 2);
                    object[] _args = translator.GetParams<object>(L, 3);

                    UnityEngine.Debug.LogWarningFormat(_context, _format, _args);

                    return 0;
                }
            }
            catch (System.Exception gen_e)
            {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }

            return LuaAPI.luaL_error(L, "invalid arguments to UnityEngine.Debug.LogWarningFormat!");
        }

        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _m_Assert_xlua_st_(RealStatePtr L)
        {
            try
            {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);

                int gen_param_count = LuaAPI.lua_gettop(L);

                if (gen_param_count == 1 && LuaTypes.LUA_TBOOLEAN == LuaAPI.lua_type(L, 1))
                {
                    bool _condition = LuaAPI.lua_toboolean(L, 1);

                    UnityEngine.Debug.Assert(_condition);

                    return 0;
                }
                if (
                    gen_param_count == 2
                    && LuaTypes.LUA_TBOOLEAN == LuaAPI.lua_type(L, 1)
                    && translator.Assignable<UnityEngine.Object>(L, 2)
                )
                {
                    bool _condition = LuaAPI.lua_toboolean(L, 1);
                    UnityEngine.Object _context = (UnityEngine.Object)
                        translator.GetObject(L, 2, typeof(UnityEngine.Object));

                    UnityEngine.Debug.Assert(_condition, _context);

                    return 0;
                }
                if (
                    gen_param_count == 2
                    && LuaTypes.LUA_TBOOLEAN == LuaAPI.lua_type(L, 1)
                    && translator.Assignable<object>(L, 2)
                )
                {
                    bool _condition = LuaAPI.lua_toboolean(L, 1);
                    object _message = translator.GetObject(L, 2, typeof(object));

                    UnityEngine.Debug.Assert(_condition, _message);

                    return 0;
                }
                if (
                    gen_param_count == 2
                    && LuaTypes.LUA_TBOOLEAN == LuaAPI.lua_type(L, 1)
                    && (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING)
                )
                {
                    bool _condition = LuaAPI.lua_toboolean(L, 1);
                    string _message = LuaAPI.lua_tostring(L, 2);

                    UnityEngine.Debug.Assert(_condition, _message);

                    return 0;
                }
                if (
                    gen_param_count == 3
                    && LuaTypes.LUA_TBOOLEAN == LuaAPI.lua_type(L, 1)
                    && translator.Assignable<object>(L, 2)
                    && translator.Assignable<UnityEngine.Object>(L, 3)
                )
                {
                    bool _condition = LuaAPI.lua_toboolean(L, 1);
                    object _message = translator.GetObject(L, 2, typeof(object));
                    UnityEngine.Object _context = (UnityEngine.Object)
                        translator.GetObject(L, 3, typeof(UnityEngine.Object));

                    UnityEngine.Debug.Assert(_condition, _message, _context);

                    return 0;
                }
                if (
                    gen_param_count == 3
                    && LuaTypes.LUA_TBOOLEAN == LuaAPI.lua_type(L, 1)
                    && (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING)
                    && translator.Assignable<UnityEngine.Object>(L, 3)
                )
                {
                    bool _condition = LuaAPI.lua_toboolean(L, 1);
                    string _message = LuaAPI.lua_tostring(L, 2);
                    UnityEngine.Object _context = (UnityEngine.Object)
                        translator.GetObject(L, 3, typeof(UnityEngine.Object));

                    UnityEngine.Debug.Assert(_condition, _message, _context);

                    return 0;
                }
            }
            catch (System.Exception gen_e)
            {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }

            return LuaAPI.luaL_error(L, "invalid arguments to UnityEngine.Debug.Assert!");
        }

        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _m_AssertFormat_xlua_st_(RealStatePtr L)
        {
            try
            {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);

                int gen_param_count = LuaAPI.lua_gettop(L);

                if (
                    gen_param_count >= 2
                    && LuaTypes.LUA_TBOOLEAN == LuaAPI.lua_type(L, 1)
                    && (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING)
                    && (
                        LuaTypes.LUA_TNONE == LuaAPI.lua_type(L, 3)
                        || translator.Assignable<object>(L, 3)
                    )
                )
                {
                    bool _condition = LuaAPI.lua_toboolean(L, 1);
                    string _format = LuaAPI.lua_tostring(L, 2);
                    object[] _args = translator.GetParams<object>(L, 3);

                    UnityEngine.Debug.AssertFormat(_condition, _format, _args);

                    return 0;
                }
                if (
                    gen_param_count >= 3
                    && LuaTypes.LUA_TBOOLEAN == LuaAPI.lua_type(L, 1)
                    && translator.Assignable<UnityEngine.Object>(L, 2)
                    && (LuaAPI.lua_isnil(L, 3) || LuaAPI.lua_type(L, 3) == LuaTypes.LUA_TSTRING)
                    && (
                        LuaTypes.LUA_TNONE == LuaAPI.lua_type(L, 4)
                        || translator.Assignable<object>(L, 4)
                    )
                )
                {
                    bool _condition = LuaAPI.lua_toboolean(L, 1);
                    UnityEngine.Object _context = (UnityEngine.Object)
                        translator.GetObject(L, 2, typeof(UnityEngine.Object));
                    string _format = LuaAPI.lua_tostring(L, 3);
                    object[] _args = translator.GetParams<object>(L, 4);

                    UnityEngine.Debug.AssertFormat(_condition, _context, _format, _args);

                    return 0;
                }
            }
            catch (System.Exception gen_e)
            {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }

            return LuaAPI.luaL_error(L, "invalid arguments to UnityEngine.Debug.AssertFormat!");
        }

        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _m_LogAssertion_xlua_st_(RealStatePtr L)
        {
            try
            {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);

                int gen_param_count = LuaAPI.lua_gettop(L);

                if (gen_param_count == 1 && translator.Assignable<object>(L, 1))
                {
                    object _message = translator.GetObject(L, 1, typeof(object));

                    UnityEngine.Debug.LogAssertion(_message);

                    return 0;
                }
                if (
                    gen_param_count == 2
                    && translator.Assignable<object>(L, 1)
                    && translator.Assignable<UnityEngine.Object>(L, 2)
                )
                {
                    object _message = translator.GetObject(L, 1, typeof(object));
                    UnityEngine.Object _context = (UnityEngine.Object)
                        translator.GetObject(L, 2, typeof(UnityEngine.Object));

                    UnityEngine.Debug.LogAssertion(_message, _context);

                    return 0;
                }
            }
            catch (System.Exception gen_e)
            {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }

            return LuaAPI.luaL_error(L, "invalid arguments to UnityEngine.Debug.LogAssertion!");
        }

        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _m_LogAssertionFormat_xlua_st_(RealStatePtr L)
        {
            try
            {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);

                int gen_param_count = LuaAPI.lua_gettop(L);

                if (
                    gen_param_count >= 1
                    && (LuaAPI.lua_isnil(L, 1) || LuaAPI.lua_type(L, 1) == LuaTypes.LUA_TSTRING)
                    && (
                        LuaTypes.LUA_TNONE == LuaAPI.lua_type(L, 2)
                        || translator.Assignable<object>(L, 2)
                    )
                )
                {
                    string _format = LuaAPI.lua_tostring(L, 1);
                    object[] _args = translator.GetParams<object>(L, 2);

                    UnityEngine.Debug.LogAssertionFormat(_format, _args);

                    return 0;
                }
                if (
                    gen_param_count >= 2
                    && translator.Assignable<UnityEngine.Object>(L, 1)
                    && (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING)
                    && (
                        LuaTypes.LUA_TNONE == LuaAPI.lua_type(L, 3)
                        || translator.Assignable<object>(L, 3)
                    )
                )
                {
                    UnityEngine.Object _context = (UnityEngine.Object)
                        translator.GetObject(L, 1, typeof(UnityEngine.Object));
                    string _format = LuaAPI.lua_tostring(L, 2);
                    object[] _args = translator.GetParams<object>(L, 3);

                    UnityEngine.Debug.LogAssertionFormat(_context, _format, _args);

                    return 0;
                }
            }
            catch (System.Exception gen_e)
            {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }

            return LuaAPI.luaL_error(
                L,
                "invalid arguments to UnityEngine.Debug.LogAssertionFormat!"
            );
        }

        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _g_get_unityLogger(RealStatePtr L)
        {
            try
            {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
                translator.PushAny(L, UnityEngine.Debug.unityLogger);
            }
            catch (System.Exception gen_e)
            {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }
            return 1;
        }

        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _g_get_developerConsoleVisible(RealStatePtr L)
        {
            try
            {
                LuaAPI.lua_pushboolean(L, UnityEngine.Debug.developerConsoleVisible);
            }
            catch (System.Exception gen_e)
            {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }
            return 1;
        }

        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _g_get_isDebugBuild(RealStatePtr L)
        {
            try
            {
                LuaAPI.lua_pushboolean(L, UnityEngine.Debug.isDebugBuild);
            }
            catch (System.Exception gen_e)
            {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }
            return 1;
        }

        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _s_set_developerConsoleVisible(RealStatePtr L)
        {
            try
            {
                UnityEngine.Debug.developerConsoleVisible = LuaAPI.lua_toboolean(L, 1);
            }
            catch (System.Exception gen_e)
            {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }
            return 0;
        }
    }
}
